function U = payoffs(theta,X,Z,YY,reb,mpow)

N=size(X,1);
KZ=size(Z,2)/5;
% NS=size(V_R,2);
nBeta=length(reb{1});
nPhi=length(mpow{1});
nGamma=length(reb{2});
nChi=length(mpow{2});
nYY=size(YY,1);

Xrebel=X(:,reb{1}); Xmpow=X(:,mpow{1});

ZUS=Z(:,1:KZ);
ZUK=Z(:,KZ+(1:KZ)); 
ZFRN=Z(:,2*KZ+(1:KZ));
ZRUS=Z(:,3*KZ+(1:KZ));
ZCHN=Z(:,4*KZ+(1:KZ));

ZrebelUS=ZUS(:,reb{2}); ZmpowUS=ZUS(:,mpow{2});
ZrebelUK=ZUK(:,reb{2}); ZmpowUK=ZUK(:,mpow{2});
ZrebelFRN=ZFRN(:,reb{2}); ZmpowFRN=ZFRN(:,mpow{2});
ZrebelRUS=ZRUS(:,reb{2}); ZmpowRUS=ZRUS(:,mpow{2});
ZrebelCHN=ZCHN(:,reb{2}); ZmpowCHN=ZCHN(:,mpow{2});

beta=theta(1:nBeta,1);

phi_US=theta(nBeta+[1,5+(1:nPhi-1)],1);
phi_UK=theta(nBeta+[2,5+(1:nPhi-1)],1);
phi_France=theta(nBeta+[3,5+(1:nPhi-1)],1);
phi_Russia=theta(nBeta+[4,5+(1:nPhi-1)],1);
phi_China=theta(nBeta+[5,5+(1:nPhi-1)],1);
    
gamma_US=theta(nBeta+4+nPhi+1,1);
gamma_UK=theta(nBeta+4+nPhi+2,1);
gamma_France=theta(nBeta+4+nPhi+3,1);
gamma_Russia=theta(nBeta+4+nPhi+4,1);
gamma_China=theta(nBeta+4+nPhi+5,1);
gamma0=theta(nBeta+4+nPhi+5+(1:nGamma),1);

chi=theta(nBeta+4+nPhi+5+nGamma+(1:nChi),1);

delta_US_UK=theta(nBeta+4+nPhi+5+nGamma+nChi+1,1);
delta_US_France=theta(nBeta+4+nPhi+5+nGamma+nChi+2,1);
delta_US_Russia=theta(nBeta+4+nPhi+5+nGamma+nChi+3,1);
delta_US_China=theta(nBeta+4+nPhi+5+nGamma+nChi+4,1);
delta_UK_France=theta(nBeta+4+nPhi+5+nGamma+nChi+5,1);
delta_UK_Russia=theta(nBeta+4+nPhi+5+nGamma+nChi+6,1);
delta_UK_China=theta(nBeta+4+nPhi+5+nGamma+nChi+7,1);
delta_France_Russia=theta(nBeta+4+nPhi+5+nGamma+nChi+8,1);
delta_France_China=theta(nBeta+4+nPhi+5+nGamma+nChi+9,1);
delta_Russia_China=theta(nBeta+4+nPhi+5+nGamma+nChi+10,1);

% lambda=theta(nBeta+4+nPhi+5+nGamma+nChi+11:end,1);

U = zeros(nYY,6,N);

for n=1:N
    
	U(:,1,n) = YY(:,1) .* (Xrebel(n,:)*beta+YY(:,2:end)*[gamma_US+ZrebelUS(n,:)*gamma0;gamma_UK+ZrebelUK(n,:)*gamma0;...
        gamma_France+ZrebelFRN(n,:)*gamma0;gamma_Russia+ZrebelRUS(n,:)*gamma0;gamma_China+ZrebelCHN(n,:)*gamma0]);
    
    U(:,2,n) = YY(:,2) .* (Xmpow(n,:)*phi_US + ZmpowUS(n,:)*chi +...
        YY(:,3:6) * [delta_US_UK; delta_US_France; delta_US_Russia; delta_US_China]);
    
    U(:,3,n) = YY(:,3) .* (Xmpow(n,:)*phi_UK + ZmpowUK(n,:)*chi +...
        YY(:,[2,4:6])*[delta_US_UK; delta_UK_France; delta_UK_Russia; delta_UK_China]);
    
    U(:,4,n) = YY(:,4) .* (Xmpow(n,:)*phi_France + ZmpowFRN(n,:)*chi +...
        YY(:,[2:3,5:6])*[delta_US_France; delta_UK_France; delta_France_Russia; delta_France_China]);
    
    U(:,5,n) = YY(:,5) .* (Xmpow(n,:)*phi_Russia + ZmpowRUS(n,:)*chi +...
        YY(:,[2:4,6])*[delta_US_Russia; delta_UK_Russia; delta_France_Russia; delta_Russia_China]);
    
    U(:,6,n) = YY(:,6) .* (Xmpow(n,:)*phi_China + ZmpowCHN(n,:)*chi +...
        YY(:,2:5)*[delta_US_China; delta_UK_China; delta_France_China; delta_Russia_China]);

end

